Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make MKL the default when it's available #387

Merged
merged 5 commits into from
Oct 4, 2023

Conversation

ChrisRackauckas
Copy link
Member

The benchmarks have pretty conclusively shown that MKL's LU factorization is just so much better than OpenBLAS that we should effectively always use it. What this does is make MKL_jll into a dependency of LinearSolve.jl and then uses the direct calls to the binary as part of the default algorithm when it's available (it won't be available on systems where MKL does not exist, like M2 macbooks). This uses the direct calls instead of LibBLASTrampoline and thus does not effect the user's global state, thus only being a local change that simply accelerates packages using LinearSolve (i.e. all of SciML).

@ChrisRackauckas ChrisRackauckas force-pushed the mklfactorization_default branch from 5156b96 to 321b0e1 Compare October 4, 2023 11:47
The benchmarks have pretty conclusively shown that MKL's LU factorization is just so much better than OpenBLAS that we should effectively always use it. What this does is make MKL_jll into a dependency of LinearSolve.jl and then uses the direct calls to the binary as part of the default algorithm when it's available (it won't be available on systems where MKL does not exist, like M2 macbooks). This uses the direct calls instead of LibBLASTrampoline and thus does not effect the user's global state, thus only being a local change that simply accelerates packages using LinearSolve (i.e. all of SciML).
@ChrisRackauckas ChrisRackauckas force-pushed the mklfactorization_default branch from 321b0e1 to 5c41c43 Compare October 4, 2023 12:04
@ChrisRackauckas ChrisRackauckas merged commit a53f644 into main Oct 4, 2023
8 of 15 checks passed
@ChrisRackauckas ChrisRackauckas deleted the mklfactorization_default branch October 4, 2023 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant